package cn.song.freight.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 策略区域定价列表查询响应VO
 *
 * @author SongRenShuo
 * @since 2025-08-26
 */
@Data
@ApiModel(value = "策略区域定价列表查询响应VO", description = "用于策略区域定价列表查询的响应数据")
@AllArgsConstructor
@NoArgsConstructor
public class StrategyAreaPricingListVO {

    /**
     * 定价配置ID
     */
    @ApiModelProperty(value = "定价配置ID", example = "1")
    private Long id;
    /**
     *  策略ID
     */
    @ApiModelProperty(value = "策略ID", example = "1")
    private Long strategyId;
    /**
     * 配置名称
     */
    @ApiModelProperty(value = "配置名称", example = "华东地区标准定价")
    private String name;
    /**
     * 配置描述
     */
    @ApiModelProperty(value = "配置描述", example = "适用于华东地区的标准定价策略")
    private String description;
    /**
     * 关联的区域ID列表
     */
    @ApiModelProperty(value = "关联区域ID列表", example = "[1, 2, 3]")
    private List<Long> areaIds;
    /**
     * 关联的区域名称列表
     */
    @ApiModelProperty(value = "关联区域名称列表", example = "[\"上海市\", \"江苏省-南京市\"]")
    private List<String> areaNames;
    /**
     * 关联的区域数量
     */
    @ApiModelProperty(value = "关联区域数量", example = "3")
    private Integer areaCount;
    /**
     * 首重重量（kg）
     */
    @ApiModelProperty(value = "首重重量(kg)", example = "1.0")
    private BigDecimal firstWeightKg;
    /**
     * 首重资费（元）
     */
    @ApiModelProperty(value = "首重费用(元)", example = "10.0")
    private BigDecimal firstWeightFee;
    /**
     * 续重重量（kg）
     */
    @ApiModelProperty(value = "续重重量(kg)", example = "1.0")
    private BigDecimal additionalWeightKg;
    /**
     * 续重资费（元）
     */
    @ApiModelProperty(value = "续重费用(元)", example = "5.0")
    private BigDecimal additionalWeightFee;
    /**
     * 抛重比（如6000表示1m³按6000kg计费），0表示不启用
     */
    @ApiModelProperty(value = "体积重比例", example = "5000.0")
    private BigDecimal volumetricWeightRatio;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", example = "2025-08-26 10:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间", example = "2025-08-26 12:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;


    /**
     * 该区域适用的重量区间规则列表
     */
    @ApiModelProperty(value = "重量区间规则列表")
    private List<WeightSegmentRuleVO> weightSegmentRules;
}
